JavaScript setTimeout 无法访问函数变量
全部标签 我有这段代码:varHuman=function(name){this._name=name;};Human.prototype.Shout=function(){alert(this._name);};vartom=newHuman("tom");varjohn=newHuman("john");alert(tom.Shout===john.Shout);现在._name不是“私有(private)的”。我想将._name设为“私有(private)”,但同时我不希望为每个Human实例创建附加函数(换句话说,tom.Shout必须===tojohn.Shout),因为为创建附加函数
我有一个按钮,可以在单击jsTree后重新加载(重新发送AJAX请求)。这是我的示例配置代码:treeContainer.bind("loaded.jstree",function(){alert("thetreeisloaded");}).jstree(config);我遇到的问题是,在第2次、第3次等点击“重新加载”按钮后,我没有显示警报(包含在回调函数中)。我是否使用了错误的jstree状态事件?总而言之,我希望每次单击“重新加载”按钮时都执行一个jsTree回调函数。我目前正在使用jsTree1.0-rc1(修订版191)。 最佳答案
假设我有一个像这样定义和实例化的Javascript类:Demo=function(){varabc="foo";return{gettest(){returnabc;}}}obj=Demo();obj.test//evaluatesto"foo"只遇到这个Demo实例obj,我可以更改属于这个对象的变量abc的值吗?构造函数引入的闭包? 最佳答案 varabc在演示范围之外不能直接使用。如果你想从那个范围之外改变它,你必须添加一个方法来设置它。Demo=function(){varabc="foo";return{gettest(
我目前正在使用Function.apply调用具有动态数量参数的函数,但我无权访问原始上下文,也不想自己设置上下文。我想要的是能够调用具有可变数量参数的函数,同时保持原始上下文。也许一些代码应该向您展示我正在尝试做的事情:functionMulticastDelegate(){varhandlers=[];this.event={subscribe:function(handler){if(typeof(handler)==='function'){handlers.push(handler);}},unsubscribe:function(handler){if(typeof(han
我在Windows8中发现了一个新的联系人API:http://msdn.microsoft.com/en-us/library/windows/apps/windows.applicationmodel.contacts%28v=VS.85%29.aspx但是我无法找到如何列出所有联系人以及添加或删除联系人。有什么提示吗? 最佳答案 查看ContactPicker样本。你不能直接去修改联系人,你必须让用户先为你选择它们。这是通过pickSingleContactAsync()方法完成的。这会为您提供一个您可以查询或修改的Conta
1|2|functionmore(){3|$("#innerSub2").animate({scrollTop:"+=240px"},1000);4|varcount=1;5|document.getElementById("dot"+count).style.color="#c7c9e9";6|varcount=count+1;7|document.getElementById("dot"+count).style.color="#6464c1";8|}9|Helo,我是javascript的新手。很抱歉,如果这是一个愚蠢的问题。在第一次点击事件中,变量按照我的需要工作(第5行,co
我一直在为jQuery“jQueryLog”开发一个插件,以允许调试链选择器和返回值。想查就查吧here这已经是第二个版本了。第一个版本实际上是一个编辑过的jQuery,在做它的时候我不得不阅读jQuery来理解内部是如何工作的。问题来自那里:varjQuery=function(selector,context){//ThejQueryobjectisactuallyjusttheinitconstructor'enhanced'returnnewjQuery.fn.init(selector,context,rootjQuery);},//MapoverjQueryincaseof
这两种情况下,变量的类型都是“未定义”。但是未声明的变量会引发异常。有没有简单的方法来处理这个问题? 最佳答案 您可以在Howtocheckifavariableorobjectisundefined?中找到问题(和我的答案)相关的。一般来说,我认为任何对“未声明变量”的访问都是编程错误。但是,这种特殊情况只能通过检测ReferenceError异常来检测。但是,讨厌,讨厌,讨厌!记住变量声明是一个静态词法构造,忽略全局对象的属性变量的怪癖。ReferenceError,现在是“strict”,存在是有原因的,我怀疑这是一个X-Y问
我正在用javascript创建一个上传控件,然后使用element.click()打开文件浏览器对话框。functionadd(type){varelement=document.createElement("input");element.setAttribute("type",type);element.setAttribute("value",type);element.setAttribute("name",type);element.setAttribute("id","element-"+i);varremovebutton=document.createElement(
我在Windows7上的Firefox11中运行此代码。(请参阅http://jsfiddle.net/QStkd/)。$('').dialog();输入中的值未被选中,在Chrome和IE中确实如此,如果我手动调用select()方法也不起作用。这是一个已知问题吗?有什么方法可以选择吗?Timerswork但是如果我在jsfiddle加载后单击run它就不再工作了。 最佳答案 它看起来像在Chrome上调用focus()(jquery-ui默认情况下对第一个可选项卡元素执行的操作)(无法测试IE——在OSX上)聚焦框并选择框中的文